package com.sg.dto.biz.framework.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;


/**
 * @desc UpdateUserReqDto
 * @使用场景
 */
@Data
public class UpdateUserReqDto extends BaseDto implements Serializable {

    /**
     * 个人账号
     */
    @NotNull(message = "个人账号不能为空")
    @ApiModelProperty("个人账号")
    private String userId;

    /**
     * 用户名
     */
    @ApiModelProperty("用户名")
    private String userName;

    /**
     * 密码
     */
    @ApiModelProperty("密码")
    private String password;

    /**
     * 绑定邮箱
     */
    @ApiModelProperty("绑定邮箱")
    private String email;

    /**
     * 绑定手机
     */
    @ApiModelProperty("绑定手机")
    private String phone;

    /**
     * 手机激活状态 TRUE:是 FALSE:否
     */
    @ApiModelProperty("手机激活状态")
    private String passByPhone;

    /**
     * 个人资料是否完善 TRUE:是 FALSE:否
     */
    @ApiModelProperty("个人资料是否完善")
    private String isUserInfoDone;

    /**
     * 最后登录ip
     */
    @ApiModelProperty("最后登录ip")
    private String lastLoginIp;

    /**
     * 最后登录时间
     */
    @ApiModelProperty("最后登录时间")
    private Date lastLoginTime;

    /**
     * 上次修改密码时间
     */
    @ApiModelProperty("上次修改密码时间")
    private Date lastPasswordChangedTime;

    /**
     * 上次被锁定的时间
     */
    @ApiModelProperty("上次被锁定的时间")
    private Date lastLockoutTime;

    /**
     * 使用无效密码登录次数
     */
    @ApiModelProperty("使用无效密码登录次数")
    private Long failedPasswordAttemptCount;

    /**
     * 首次使用无效密码时间
     */
    @ApiModelProperty("首次使用无效密码时间")
    private Date firstFailedPasswordAttempTime;

    /**
     * 是否失效 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否失效")
    private String isInvalid;

    /**
     * 失效类型 FREEZE:冻结 OTHER:其他
     */
    @ApiModelProperty("失效类型")
    private String invalidType;

    /**
     * 失效原因
     */
    @ApiModelProperty("失效原因")
    private String invalidReason;

    /**
     * 失效时间
     */
    @ApiModelProperty("失效时间")
    private Date invalidTime;

    /**
     * 邀请人账号
     */
    @ApiModelProperty("邀请人账号")
    private String inviteUserId;

    /**
     * 邮箱激活状态 TRUE:是 FALSE:否
     */
    @ApiModelProperty("邮箱激活状态")
    private String passByEmail;


}
   